Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
att
GitHub Repository: att/ast
Path: blob/master/src/lib/libcs/csto.c
1808 views
1
/***********************************************************************
2
* *
3
* This software is part of the ast package *
4
* Copyright (c) 1990-2011 AT&T Intellectual Property *
5
* and is licensed under the *
6
* Eclipse Public License, Version 1.0 *
7
* by AT&T Intellectual Property *
8
* *
9
* A copy of the License is available at *
10
* http://www.eclipse.org/org/documents/epl-v10.html *
11
* (with md5 checksum b35adb5213ca9657e911e9befb180842) *
12
* *
13
* Information and Software Systems Research *
14
* AT&T Research *
15
* Florham Park NJ *
16
* *
17
* Glenn Fowler <[email protected]> *
18
* *
19
***********************************************************************/
20
#pragma prototyped
21
/*
22
* Glenn Fowler
23
* AT&T Research
24
*
25
* write datagram
26
*/
27
28
#include "cslib.h"
29
30
ssize_t
31
csto(register Cs_t* state, int fd, const void* buf, size_t siz, Csaddr_t* addr)
32
{
33
34
#if CS_LIB_V10
35
36
struct udpaddr udp;
37
38
udp.host = addr->addr[0];
39
udp.port = addr->addr[1];
40
if (cswrite(state, fd, &udp, sizeof(udp)) != sizeof(udp))
41
{
42
messagef((state->id, NiL, -1, "to: %d: hdr write error", fd));
43
return -1;
44
}
45
return cswrite(state, fd, buf, siz);
46
47
#else
48
49
#if CS_LIB_SOCKET
50
51
struct sockaddr_in nam;
52
53
memzero(&nam, sizeof(nam));
54
nam.sin_family = AF_INET;
55
nam.sin_addr.s_addr = addr->addr[0];
56
nam.sin_port = addr->addr[1];
57
return sendto(fd, buf, siz, 0, (struct sockaddr*)&nam, sizeof(nam));
58
59
#else
60
61
errno = EINVAL;
62
messagef((state->id, NiL, -1, "to: %d: not supported", fd));
63
return -1;
64
65
#endif
66
67
#endif
68
69
}
70
71
ssize_t
72
_cs_to(int fd, const void* buf, size_t siz, Csaddr_t* addr)
73
{
74
return csto(&cs, fd, buf, siz, addr);
75
}
76
77