Aller au contenu
View in the app

A better way to browse. Learn more.

Next

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

error -1 de send() au noyau

Featured Replies

Posté(e)

Bonjour,

J'utilise la librairie ipsec-tools-0.5.2 sous FreeBSD 6.0. J'utilise le code de ipsec-tools pour envoyer des données au noyau par la fonction pfkey_send(). Cette fonction fait appel à la fonction send(int so, msg, int len). so : descripteur de la socket, msg : données à envoyer au noyau, len : taille des données (taille de msg). Il y a quelque chose que je ne comprends pas.

Tout se passe bien lorsque j'utilise le code en l'état. J'ai voulu rajouter des données dans msg (en augmentant la valeur de len en conséquence) et send retourne -1 (send ne retourne aucune erreur du type EMSGSIZE ou ECONNECT ou autre). D'après le man de send -1 est une erreur interne et implicite de send. J'ai essayé alors deux choses : envoyer msg sans le modifier mais en diminuant len de 1 puis envoyer msg en lui ajoutant un octet et en augmentant len de 1. Même erreur -1 de send et les données ne sont pas transmises au noyau. J'ai vérifié par un affichage : len correspond au nombre d'octets de msg (et pas au nombre de bits ou de blocs de 32 ou 64 par exemple).

Quelqu'un aurait-il une idée sur la raison de cette erreur ? Y a-t-il une taille max de données pouvant être envoyées ? Mais alors pourquoi je ne parviens pas non plus à envoyer len-1 octets de msg ?

Y a-t-il un contrôle quelconque sur le message ? Un champ control à modifier ? Est-ce que send reçoit un acquittement du noyau et que c'est pour cela qu'il y a l'erreur ?

Qu'en pensez-vous ?

Merci de votre aide.

Posté(e)

:keskidit:

man send !

RETURN VALUE

On success, these calls return the number of characters sent. On

error, -1 is returned, and errno is set appropriately.

ERRORS

These are some standard errors generated by the socket layer. Addi-

tional errors may be generated and returned from the underlying proto-

col modules; see their respective manual pages.

EACCES (For Unix domain sockets, which are identified by pathname)

Write permission is denied on the destination socket file, or

search permission is denied for one of the directories the path

prefix. (See path_resolution(2).)

EAGAIN or EWOULDBLOCK

The socket is marked non-blocking and the requested operation

would block.

EBADF An invalid descriptor was specified.

ECONNRESET

Connection reset by peer.

(etc...)

Archivé

Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.