Το Έργο GNU κυκλοφόρησε το libmicrohttpd 0.9.77, ένα απλό API για την ενσωμάτωση λειτουργικότητας διακομιστή HTTP σε εφαρμογές. Οι υποστηριζόμενες πλατφόρμες περιλαμβάνουν: GNU/Linux, FreeBSD, OpenBSD, NetBSD, Solaris, Android, macOS, Win32 και z/OS. Η βιβλιοθήκη διανέμεται με την άδεια LGPL 2.1+. Κατά τη μεταγλώττιση, η βιβλιοθήκη καταλαμβάνει περίπου 32 KB.
Η βιβλιοθήκη υποστηρίζει πρωτόκολλο HTTP 1.1, TLS, επαυξητική επεξεργασία POST, βασικό και συνοπτικό έλεγχο ταυτότητας, IPv6, SHOUTcast, διάφορες μεθόδους πολυπλεξίας σύνδεσης (επιλογή, δημοσκόπηση, epoll) και μοντέλα πολλαπλών νημάτων (για παράδειγμα, μπορείτε να χρησιμοποιήσετε μια ομάδα νημάτων ή νήματα ανά σύνδεση ). Για να μειωθεί η επιβάρυνση που σχετίζεται με τους διακόπτες περιβάλλοντος μεταξύ του χώρου πυρήνα και χρήστη, ο αριθμός των κλήσεων συστήματος κατά τη λειτουργία διατηρείται στο ελάχιστο.
Οι πιο αξιοσημείωτες αλλαγές:
- Το API προσφέρει μια νέα συνάρτηση MHD_get_version_bin() για τη λήψη πληροφοριών σχετικά με την έκδοση της βιβλιοθήκης σε συσκευασμένη μορφή (για παράδειγμα, 0x00097701).
- Η φόρμα που συνιστάται στο RFC είναι τα αναγνωριστικά των αλγορίθμων που χρησιμοποιούνται για τον έλεγχο ταυτότητας της σύνοψης ("MD5" / "SHA-256" αντί για "md5" / "sha-256").
- Ο κώδικας για την αποκωδικοποίηση μπλοκ σε μορφή Base64 έχει ξαναγραφεί, η επικύρωση των δεδομένων εισόδου σε μορφή Base64 έχει ενισχυθεί.
- Βελτιωμένες ρυθμίσεις πολλαπλής μεταγλώττισης, αυξημένη συμβατότητα με το POSIX και τις νέες εκδόσεις μεταγλωττιστή.
- Προστέθηκαν εσωτερικές δοκιμές για την επαλήθευση της αποκωδικοποίησης Base64, του Basic Auth και των διπλωμένων μεγάλων κεφαλίδων HTTP.
- Οι δοκιμές χρησιμοποίησαν ένα ενημερωμένο API libcurl για την απόκρυψη προειδοποιήσεων σχετικά με τη χρήση καταργημένων κλήσεων.
- Προστέθηκε η δυνατότητα χρήσης μεταγλωττιστών VC (Visual C) κατά την κατασκευή συστημάτων ARM και ARM64.
- Τυχόν αρνητικές τιμές που επιστρέφονται από μια επανάκληση αντιμετωπίζονται πλέον ως σφάλματα (οι προηγούμενες αρνητικές τιμές, με εξαίρεση τους προκαθορισμένους κωδικούς σφάλματος, θα μπορούσαν να οδηγήσουν σε απροσδιόριστη συμπεριφορά).
- Προστέθηκε η επεξεργασία της μακροεντολής προεπεξεργαστή "DEBUG" (ο χειριστής είναι πανομοιότυπος με τη μακροεντολή "_DEBUG").
- Διορθώθηκαν τα συσσωρευμένα σφάλματα.
Πηγή: opennet.ru
