Re: Нужен модуль.

Vipper nginx-forum at nginx.us
Wed Nov 28 07:52:19 UTC 2012


Его получает демон, но написанный не на ноде как сейчас, а на С++.

Вот кусок:

                if (cmptr == NULL && (cmptr = (cmsghdr *) malloc
(CONTROLLEN)) == NULL)
                        return (-1);
                msg.msg_control = (caddr_t) cmptr;
                msg.msg_controllen = CONTROLLEN;
                if ((nread = recvmsg (servfd, &msg, 0)) < 0)
                        my_log ("recvmsg error\n");
                else if (nread == 0) {
                        my_log ("connection closed by server\n");
                        return (-1);
                }
                strcpy(query, "");
                strncpy(query, &buf[2], (nread-2 > 255)? 255: nread-2);
                query[(nread-2 > 255)? 255: nread-2] = 0;
                newfd = *(int *) CMSG_DATA (cmptr);
                return (newfd);

Sergey Smitienko Wrote:
-------------------------------------------------------
> А кто получает это сообщение. Покажите кусок кода второго демона, с
> recvmsg.
> > Вот кусок кода из модуля к nginx который работает у меня с 2004 года
> и
> > занимается как раз тем что я прошу.
> > 				if (!error) {
> > 					buf[0] = 0;		/* null byte flag to recv_fd() */
> > 					mysent = sendmsg (sockfd, &msg, 0);
> > 					if (mysent == -1)
> > 						rc = send_error(r, strerror(errno));
> > 					else 
> > 						//if ok, and now the socket in the voc-daemon, let's tell
> nginx to
> > close it:
> > 						rc = NGX_HTTP_CLOSE;
> > 				}
> > 			}//end of if connect
> > 			close(sockfd);
> > 		}//end of if socket()
> >
> > Всё работает как надо. Но переделывать его у меня не хватает знаний.
> >
> 
> _______________________________________________
> nginx-ru mailing list
> nginx-ru at nginx.org
> http://mailman.nginx.org/mailman/listinfo/nginx-ru

Posted at Nginx Forum: http://forum.nginx.org/read.php?21,233223,233310#msg-233310



Подробная информация о списке рассылки nginx-ru