svn commit: samba r8408 - in branches/SAMBA_4_0/source/lib/socket: .
tridge at samba.org
tridge at samba.org
Wed Jul 13 03:25:37 GMT 2005
Author: tridge
Date: 2005-07-13 03:25:36 +0000 (Wed, 13 Jul 2005)
New Revision: 8408
WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=8408
Log:
its quite common in our code to free up a connection when we get an
error, but sometimes a socket option may then happen on the NULL
socket. This has been handled by the individual libraries up to now,
but its cleaner to centralise it here
Modified:
branches/SAMBA_4_0/source/lib/socket/socket.c
Changeset:
Modified: branches/SAMBA_4_0/source/lib/socket/socket.c
===================================================================
--- branches/SAMBA_4_0/source/lib/socket/socket.c 2005-07-13 03:01:26 UTC (rev 8407)
+++ branches/SAMBA_4_0/source/lib/socket/socket.c 2005-07-13 03:25:36 UTC (rev 8408)
@@ -98,6 +98,9 @@
const char *server_address, int server_port,
uint32_t flags)
{
+ if (sock == NULL) {
+ return NT_STATUS_CONNECTION_DISCONNECTED;
+ }
if (sock->state != SOCKET_STATE_UNDEFINED) {
return NT_STATUS_INVALID_PARAMETER;
}
@@ -119,6 +122,9 @@
NTSTATUS socket_listen(struct socket_context *sock, const char *my_address, int port, int queue_size, uint32_t flags)
{
+ if (sock == NULL) {
+ return NT_STATUS_CONNECTION_DISCONNECTED;
+ }
if (sock->state != SOCKET_STATE_UNDEFINED) {
return NT_STATUS_INVALID_PARAMETER;
}
@@ -134,6 +140,9 @@
{
NTSTATUS status;
+ if (sock == NULL) {
+ return NT_STATUS_CONNECTION_DISCONNECTED;
+ }
if (sock->type != SOCKET_TYPE_STREAM) {
return NT_STATUS_INVALID_PARAMETER;
}
@@ -158,6 +167,9 @@
NTSTATUS socket_recv(struct socket_context *sock, void *buf,
size_t wantlen, size_t *nread, uint32_t flags)
{
+ if (sock == NULL) {
+ return NT_STATUS_CONNECTION_DISCONNECTED;
+ }
if (sock->state != SOCKET_STATE_CLIENT_CONNECTED &&
sock->state != SOCKET_STATE_SERVER_CONNECTED &&
sock->type != SOCKET_TYPE_DGRAM) {
@@ -183,6 +195,9 @@
size_t wantlen, size_t *nread, uint32_t flags,
const char **src_addr, int *src_port)
{
+ if (sock == NULL) {
+ return NT_STATUS_CONNECTION_DISCONNECTED;
+ }
if (sock->type != SOCKET_TYPE_DGRAM) {
return NT_STATUS_INVALID_PARAMETER;
}
@@ -198,6 +213,9 @@
NTSTATUS socket_send(struct socket_context *sock,
const DATA_BLOB *blob, size_t *sendlen, uint32_t flags)
{
+ if (sock == NULL) {
+ return NT_STATUS_CONNECTION_DISCONNECTED;
+ }
if (sock->state != SOCKET_STATE_CLIENT_CONNECTED &&
sock->state != SOCKET_STATE_SERVER_CONNECTED) {
return NT_STATUS_INVALID_PARAMETER;
@@ -225,6 +243,9 @@
const DATA_BLOB *blob, size_t *sendlen, uint32_t flags,
const char *dest_addr, int dest_port)
{
+ if (sock == NULL) {
+ return NT_STATUS_CONNECTION_DISCONNECTED;
+ }
if (sock->type != SOCKET_TYPE_DGRAM) {
return NT_STATUS_INVALID_PARAMETER;
}
@@ -247,6 +268,9 @@
*/
NTSTATUS socket_pending(struct socket_context *sock, size_t *npending)
{
+ if (sock == NULL) {
+ return NT_STATUS_CONNECTION_DISCONNECTED;
+ }
if (!sock->ops->fn_pending) {
return NT_STATUS_NOT_IMPLEMENTED;
}
@@ -256,6 +280,9 @@
NTSTATUS socket_set_option(struct socket_context *sock, const char *option, const char *val)
{
+ if (sock == NULL) {
+ return NT_STATUS_CONNECTION_DISCONNECTED;
+ }
if (!sock->ops->fn_set_option) {
return NT_STATUS_NOT_IMPLEMENTED;
}
More information about the samba-cvs
mailing list