Commit Graph

14 Commits

Author SHA1 Message Date
mav
830b368aaf Replace select() by poll() to avoid problems with big
descriptor number.

Approved by:	glebius (mentor)
2007-05-14 14:18:41 +00:00
glebius
221ee422f9 Include sys/socket.h to know about sa_family_t. 2006-10-17 16:56:29 +00:00
glebius
a8f06e9570 In the splnet(9) times netgraph(4) was synchronous and if a message
had been replied, the reply was always delivered to the originator
synchronously.

With introduction of netgraph item callbacks and a wait channel with
mutex in ng_socket(4), we have fixed the problem with ngctl(8) returning
earlier than the command has been proceeded by target node. But still
ngctl(8) can return prior to the reply has arrived to its node.

To fix this:
 - Introduce a new flag for netgraph(4) messages - NGM_HASREPLY.
   This flag is or'ed with message like NGM_READONLY.
 - In netgraph userland library if we have sent a message with
   NGM_HASREPLY flag, then select(2) until reply comes.
 - Mark appropriate generic commands with NGM_HASREPLY flag,
   gathering them into one enum {}. Bump generic cookie.
2006-01-12 19:14:40 +00:00
mux
97a7651af8 Make this compile with GCC4 by fixing a few signedness related warnings.
Reviewed by:	md5(1)
2005-04-26 14:25:11 +00:00
glebius
e7fd5fd51e When we have converted an ASCII message to binary, set its version in
the header. Otherwise we will send a message with zero version.

MFC after:	3 days
2005-02-04 21:36:10 +00:00
ru
adc82a1e80 - Added three new interfaces, NgAllocRecvMsg(), NgAllocRecvAsciiMsg(),
and NgAllocRecvData(), that dynamically allocate buffer for a binary
  message, an ascii message, and a data packet, respectively.  The size
  of the allocated buffer is equal to the socket's receive buffer size
  to guarantee that a message or a data packet is not truncated.

- Get rid of the static size buffer in NgSendAsciiMsg().

OK'ed by:	archie, julian
2004-01-27 20:25:14 +00:00
ru
89536c60f8 Fixed memory leak in NgSendAsciiMsg(). 2004-01-27 18:38:22 +00:00
harti
5afef437ec Use the new defines that include the trailing '\0' in the code.
Replace occurences of the magic constant 2 with an offsetof macro
call that computes the size of the leading members of the sockaddr.
Use strlcpy instead of sprintf where appropriate. Document the new changes
in the man page.
2003-11-14 08:09:01 +00:00
archie
8d7368cdb8 Fix bugs in NgSendMsg() and NgSendAsciiMsg() where the wrong token
value could be returned when the debug level was non-zero.

Submitted by:	Harti Brandt <brandt@fokus.gmd.de>
MFC after:	5 days
2001-10-25 04:02:25 +00:00
dillon
d73daa7317 Add __FBSDID()s to libnetgraph 2001-09-30 22:03:54 +00:00
archie
8bd069edd6 - Make sure the message token returned by NgSendMsg() is non-negative
- Have NgSendAsciiMsg() return the same token as NgSendMsg()
- Document that NgSendMsg() and NgSendAsciiMsg() return the token
- Add MLINKS for the functions defined in netgraph(3)
2000-06-21 23:01:07 +00:00
archie
9f245c92a7 Fix buffer overflow bug in NgSendAsciiMsg(). 2000-06-02 21:51:36 +00:00
archie
81fceb37a9 Add two new generic control messages, NGM_ASCII2BINARY and
NGM_BINARY2ASCII, which convert control messages to ASCII and back.
This allows control messages to be sent and received in ASCII form
using ngctl(8), which makes ngctl a lot more useful.

This also allows all the type-specific debugging code in libnetgraph
to go away -- instead, we just ask the node itself to do the ASCII
translation for us.

Currently, all generic control messages are supported, as well as
messages associated with the following node types: async, cisco,
ksocket, and ppp.

See /usr/share/examples/netgraph/ngctl for an example of using this.

Also give ngctl(8) the ability to print out incoming data and
control messages at any time.  Eventually nghook(8) may be subsumed.

Several other misc. bug fixes.

Reviewed by:	julian
1999-11-30 02:45:32 +00:00
julian
c5c63975d5 Whistle's Netgraph link-layer (sometimes more) networking infrastructure.
Been in production for 3 years now. Gives Instant Frame relay to if_sr
and if_ar drivers, and PPPOE support soon. See:
ftp://ftp.whistle.com/pub/archie/netgraph/index.html
for on-line manual pages.

Reviewed by: Doug Rabson (dfr@freebsd.org)
Obtained from:  Whistle CVS tree
1999-10-21 09:06:11 +00:00