[telepathy-gabble/master] check_ip_params: check access_control_param in the port case
Guillaume Desmottes
guillaume.desmottes at collabora.co.uk
Thu May 21 04:29:00 PDT 2009
---
src/tube-stream.c | 25 +++++++++++++++++++------
1 files changed, 19 insertions(+), 6 deletions(-)
diff --git a/src/tube-stream.c b/src/tube-stream.c
index e033a94..02c78f7 100644
--- a/src/tube-stream.c
+++ b/src/tube-stream.c
@@ -1951,15 +1951,28 @@ check_ip_params (TpSocketAddressType address_type,
freeaddrinfo (result);
}
- if (access_control != TP_SOCKET_ACCESS_CONTROL_LOCALHOST)
+ if (access_control == TP_SOCKET_ACCESS_CONTROL_LOCALHOST)
{
- g_set_error (error, TP_ERRORS, TP_ERROR_INVALID_ARGUMENT,
- "%s sockets only support localhost control access",
- (address_type == TP_SOCKET_ADDRESS_TYPE_IPV4 ? "IPv4" : "IPv6"));
- return FALSE;
+ return TRUE;
+ }
+ else if (access_control == TP_SOCKET_ACCESS_CONTROL_PORT)
+ {
+ if (access_control_param != NULL)
+ {
+ if (G_VALUE_TYPE (access_control_param) !=
+ TP_STRUCT_TYPE_SOCKET_ADDRESS_IPV4)
+ {
+ g_set_error (error, TP_ERRORS, TP_ERROR_INVALID_ARGUMENT,
+ "Port access param is supposed to be sq");
+ return FALSE;
+ }
+ }
+ return TRUE;
}
- return TRUE;
+ g_set_error (error, TP_ERRORS, TP_ERROR_INVALID_ARGUMENT,
+ "%u socket access control is not supported", access_control);
+ return FALSE;
}
/* used to check access control parameters both for OfferStreamTube and
--
1.5.6.5
More information about the telepathy-commits
mailing list