> -----Original Message-----
> From: [email protected] 
> [mailto:[email protected]] On Behalf Of [email protected]
> Sent: Tuesday, September 08, 2009 8:42 PM
> To: rsyslog-users
> Subject: Re: [rsyslog] Help requested: UDP max message size?
> 
> On Tue, 8 Sep 2009, Rainer Gerhards wrote:
> 
> > Was there an non-rsyslog  relay in the relay chain? If not, 
> it points to the rsyslog forwarding module doing the 
> truncation (what recent v3+ i think should not do...)
> 
> yes, as far as I know the none of the senders are rsyslog yet.

Well, from what I see in the tcpdump logs, the initial sender is rsyslog and
the messages originated from imklog. I can point you to the entries in
question, but I don't have logs with me now.

Rainer
> 
> I am working from the central server out.
> 
> the central server is rsyslog with no problems
> 
> all but this one relay box are rsyslog
> 
> things sending to these relay boxes are whatever syslog 
> sender was on the 
> OS/appliance (there may be some acting as relays as well as 
> sending for 
> themselves)
> 
> David Lang
> 
> > rainer
> >
> > ----- Urspr?ngliche Nachricht -----
> > Von: "[email protected]" <[email protected]>
> > An: "rsyslog-users" <[email protected]>
> > Gesendet: 08.09.09 19:55
> > Betreff: Re: [rsyslog] Help requested: UDP max message size?
> >
> > On Tue, 8 Sep 2009, Rainer Gerhards wrote:
> >
> >> oh my... Please disregard this question. I was working on 
> a tcpdump file, and
> >> the message length actually *is* 1024 bytes. I was 
> confused by Wireshark's
> >> (correct!) indication that the frame is 1066 octets in 
> length. Of course,
> >> this is correct, if you take the 42 octets of UDP header 
> into account...
> >>
> >> I guess the dump file was created with a max of 1K...
> >
> > the dump file was set -s 0 (up to 64k packet size), but 
> many/most syslog 
> > senders will limit their outbound data to 1k
> >
> > David Lang
> >
> >> Sometimes it is sooo easy ... and yet so hard to see ;)
> >>
> >> Sorry for the interruption,
> >> Rainer
> >>
> >>> -----Original Message-----
> >>> From: [email protected] [mailto:rsyslog-
> >>> [email protected]] On Behalf Of Rainer Gerhards
> >>> Sent: Tuesday, September 08, 2009 1:23 PM
> >>> To: [email protected]
> >>> Subject: [rsyslog] Help requested: UDP max message size?
> >>>
> >>> Hi all,
> >>>
> >>> I am really banging my head on a problem which sounds too 
> easy. I have
> >>> seen that my systems (and some others as well), seem to 
> not provide
> >>> more
> >>> than 1024 bytes on a recvfrom() call. With wireshark, I 
> see that the
> >>> system itself, at the IP layer, receives more data. I am 
> a bit puzzled,
> >>> to phrase it lightly. I did not find any information on such a
> >>> limitation.
> >>>
> >>> I have created a strip-down version of a receiver, even 
> built it on top
> >>> of the Linux man pages samples. Out of desperation, I even set the
> >>> receivebuf size, which I think has no effect on datagram sockets.
> >>> Still... I only get 1024 bytes. Code is after my sig.
> >>>
> >>> Does anybody have an idea what is going on OR a good 
> place where to ask
> >>> this question?
> >>>
> >>> Thanks,
> >>> Rainer
> >>>
> >>>        #include <sys/types.h>
> >>>        #include <stdio.h>
> >>>        #include <stdlib.h>
> >>>        #include <unistd.h>
> >>>        #include <string.h>
> >>>        #include <sys/socket.h>
> >>>        #include <netdb.h>
> >>>
> >>>        #define BUF_SIZE 2048
> >>>
> >>>        int
> >>>        main(int argc, char *argv[])
> >>>        {
> >>>            struct addrinfo hints;
> >>>            struct addrinfo *result, *rp;
> >>>            int sfd, s;
> >>>            struct sockaddr_storage peer_addr;
> >>>            socklen_t peer_addr_len;
> >>>            ssize_t nread;
> >>>            char buf[BUF_SIZE];
> >>>
> >>>            if (argc != 2) {
> >>>                fprintf(stderr, "Usage: %s port\n", argv[0]);
> >>>                exit(EXIT_FAILURE);
> >>>            }
> >>>
> >>>            memset(&hints, 0, sizeof(struct addrinfo));
> >>>            hints.ai_family = AF_UNSPEC;    /* Allow IPv4 
> or IPv6 */
> >>>            hints.ai_socktype = SOCK_DGRAM; /* Datagram socket */
> >>>            hints.ai_flags = AI_PASSIVE;    /* For 
> wildcard IP address
> >>> */
> >>>            hints.ai_protocol = 0;          /* Any protocol */
> >>>            hints.ai_canonname = NULL;
> >>>            hints.ai_addr = NULL;
> >>>            hints.ai_next = NULL;
> >>>
> >>>            s = getaddrinfo(NULL, argv[1], &hints, &result);
> >>>            if (s != 0) {
> >>>                fprintf(stderr, "getaddrinfo: %s\n", 
> gai_strerror(s));
> >>>                exit(EXIT_FAILURE);
> >>>            }
> >>>
> >>>            /* getaddrinfo() returns a list of address structures.
> >>>               Try each address until we successfully bind(2).
> >>>               If socket(2) (or bind(2)) fails, we (close 
> the socket
> >>>               and) try the next address. */
> >>>
> >>>            for (rp = result; rp != NULL; rp = rp->ai_next) {
> >>>                sfd = socket(rp->ai_family, rp->ai_socktype,
> >>>                        rp->ai_protocol);
> >>>                if (sfd == -1)
> >>>                    continue;
> >>>
> >>>
> >>> int result2;
> >>> int bufSize = 2048;
> >>> result2 = setsockopt(sfd, SOL_SOCKET, SO_RCVBUF, &bufSize,
> >>> sizeof(bufSize));
> >>> printf("result of setsockopt: %d\n", result2);
> >>>
> >>>                if (bind(sfd, rp->ai_addr, rp->ai_addrlen) == 0)
> >>>                    break;                  /* Success */
> >>>
> >>>                close(sfd);
> >>>            }
> >>>
> >>>            if (rp == NULL) {               /* No address 
> succeeded */
> >>>                fprintf(stderr, "Could not bind\n");
> >>>                exit(EXIT_FAILURE);
> >>>            }
> >>>
> >>>            freeaddrinfo(result);           /* No longer needed */
> >>>
> >>>            /* Read datagrams and echo them back to sender */
> >>>            for (;;) {
> >>>                peer_addr_len = sizeof(struct sockaddr_storage);
> >>>          memset(buf, 0, BUF_SIZE);
> >>>                nread = recvfrom(sfd, buf, BUF_SIZE, 0,
> >>>                        (struct sockaddr *) &peer_addr, 
> &peer_addr_len);
> >>>          if(nread > 1024)
> >>>           printf("NREAD > 1024!");
> >>>                if (nread == -1)
> >>>                    continue;               /* Ignore 
> failed request */
> >>>
> >>>                char host[NI_MAXHOST], service[NI_MAXSERV];
> >>>
> >>>                s = getnameinfo((struct sockaddr *) &peer_addr,
> >>>                                peer_addr_len, host, NI_MAXHOST,
> >>>                                service, NI_MAXSERV, 
> NI_NUMERICSERV);
> >>>               if (s == 0)
> >>>                    printf("Received %ld bytes from %s:%s, 
> msg:'%s'\n",
> >>>                            (long) nread, host, service, buf);
> >>>                else
> >>>                    fprintf(stderr, "getnameinfo: %s\n",
> >>> gai_strerror(s));
> >>>            }
> >>>        }
> >>>
> >>>
> >>> _______________________________________________
> >>> rsyslog mailing list
> >>> http://lists.adiscon.net/mailman/listinfo/rsyslog
> >>> http://www.rsyslog.com
> >> _______________________________________________
> >> rsyslog mailing list
> >> http://lists.adiscon.net/mailman/listinfo/rsyslog
> >> http://www.rsyslog.com
> >>
> > _______________________________________________
> > rsyslog mailing list
> > http://lists.adiscon.net/mailman/listinfo/rsyslog
> > http://www.rsyslog.com
> > _______________________________________________
> > rsyslog mailing list
> > http://lists.adiscon.net/mailman/listinfo/rsyslog
> > http://www.rsyslog.com
> _______________________________________________
> rsyslog mailing list
> http://lists.adiscon.net/mailman/listinfo/rsyslog
> http://www.rsyslog.com
> 
_______________________________________________
rsyslog mailing list
http://lists.adiscon.net/mailman/listinfo/rsyslog
http://www.rsyslog.com

Reply via email to