ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/gvpe/src/sockinfo.h
(Generate patch)

Comparing gvpe/src/sockinfo.h (file contents):
Revision 1.1 by pcg, Fri Mar 28 04:05:10 2003 UTC vs.
Revision 1.5 by pcg, Sat Apr 5 17:54:22 2003 UTC

1/* 1/*
2 sockinfo.h -- socket address management 2 sockinfo.h -- socket address management
3 Copyright (C) 1998-2002 Ivo Timmermans <ivo@o2w.nl> 3
4 2000-2002 Guus Sliepen <guus@sliepen.eu.org> 4 Copyright (C) 2003 Marc Lehmann <pcg@goof.com>
5 2003 Marc Lehmannn <pcg@goof.com>
6 5
7 This program is free software; you can redistribute it and/or modify 6 This program is free software; you can redistribute it and/or modify
8 it under the terms of the GNU General Public License as published by 7 it under the terms of the GNU General Public License as published by
9 the Free Software Foundation; either version 2 of the License, or 8 the Free Software Foundation; either version 2 of the License, or
10 (at your option) any later version. 9 (at your option) any later version.
17 You should have received a copy of the GNU General Public License 16 You should have received a copy of the GNU General Public License
18 along with this program; if not, write to the Free Software 17 along with this program; if not, write to the Free Software
19 Foundation, Inc. 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 18 Foundation, Inc. 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
20*/ 19*/
21 20
22#ifndef SOCKINFO_H__ 21#ifndef VPE_SOCKINFO_H__
23#define SOCKINFO_H__ 22#define VPE_SOCKINFO_H__
24 23
25#include <sys/socket.h> 24#include <sys/socket.h>
26#include <netinet/in.h> 25#include <netinet/in.h>
27 26
28#include "conf.h" 27#include "conf.h"
34 u32 host; 33 u32 host;
35 u16 port; 34 u16 port;
36 u8 prot; 35 u8 prot;
37 u8 pad1; 36 u8 pad1;
38 37
39 void set (const sockaddr_in *sa, u8 prot_ = PROT_UDPv4); 38 void set (const sockaddr_in *sa, u8 prot_);
40 void set (const conf_node *conf); 39 void set (const conf_node *conf, u8 prot_);
40
41 // return the supported protocols
42 u8 supported_protocols (conf_node *conf = 0);
43 bool upgrade_protocol (u8 prot_, conf_node *conf = 0);
41 44
42 operator const char *() const; 45 operator const char *() const;
43 46
44 const sockaddr *sav4 () const; 47 const sockaddr *sav4 () const;
45 const socklen_t salenv4 () const 48 const socklen_t salenv4 () const
46 {
47 return sizeof (sockaddr_in); 49 { return sizeof (sockaddr_in); }
48 }
49 50
50 const char *ntoa () const; 51 const char *ntoa () const;
51 52
52 sockinfo() 53 bool valid () const
53 { 54 { return prot != 0 && host != 0; }
54 prot = 0;
55 }
56 55
56 sockinfo() { prot = 0; }
57
57 sockinfo(const sockaddr_in &sa, u8 prot_ = PROT_UDPv4) 58 sockinfo(const sockaddr_in &sa, u8 prot)
58 {
59 set (&sa, prot_); 59 { set (&sa, prot); }
60 } 60
61 sockinfo(const conf_node *conf, u8 prot)
62 { set (conf, prot); }
61 }; 63 };
62 64
63inline bool
64operator == (const sockinfo &a, const sockinfo &b) 65bool operator == (const sockinfo &a, const sockinfo &b);
65{ 66bool operator < (const sockinfo &a, const sockinfo &b);
66 return a.host == b.host && a.port == b.port && a.prot == b.prot;
67}
68 67
69#endif 68#endif
70 69

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines