summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorJean Tourrilhes <jt@hpl.hp.com>2002-04-03 19:01:47 -0500
committerLinus Torvalds <torvalds@penguin.transmeta.com>2002-04-03 19:01:47 -0500
commitf289ef5a2e28b48d3677ea851d3ba4c712315d62 (patch)
tree81d23b582d05618d2aaf873fbb76d5a88154fd8f /include
parent0a0828244fb7a4c2b2c5f15adc5ea134bd171da4 (diff)
IrDA discovery fixes:
o [FEATURE] Propagate mode of discovery to higher protocols o [CORRECT] Disable passive discovery in ircomm and irlan Prevent client and server to simultaneously connect to each other o [CORRECT] Force expiry of discovery log on LAP disconnect
Diffstat (limited to 'include')
-rw-r--r--include/net/irda/discovery.h8
-rw-r--r--include/net/irda/irlan_client.h2
-rw-r--r--include/net/irda/irlmp.h4
3 files changed, 11 insertions, 3 deletions
diff --git a/include/net/irda/discovery.h b/include/net/irda/discovery.h
index dccf1246c8ff..8e22eeab5332 100644
--- a/include/net/irda/discovery.h
+++ b/include/net/irda/discovery.h
@@ -39,6 +39,14 @@
#define DISCOVERY_EXPIRE_TIMEOUT 6*HZ
#define DISCOVERY_DEFAULT_SLOTS 0
+/* Types of discovery */
+typedef enum {
+ DISCOVERY_LOG, /* What's in our discovery log */
+ DISCOVERY_ACTIVE, /* Doing our own discovery on the medium */
+ DISCOVERY_PASSIVE, /* Peer doing discovery on the medium */
+ EXPIRY_TIMEOUT, /* Entry expired due to timeout */
+} DISCOVERY_MODE;
+
#define NICKNAME_MAX_LEN 21
/*
diff --git a/include/net/irda/irlan_client.h b/include/net/irda/irlan_client.h
index 2aab19e9058d..e42871a09642 100644
--- a/include/net/irda/irlan_client.h
+++ b/include/net/irda/irlan_client.h
@@ -34,7 +34,7 @@
#include <net/irda/irlan_event.h>
void irlan_client_start_kick_timer(struct irlan_cb *self, int timeout);
-void irlan_client_discovery_indication(discovery_t *, void *);
+void irlan_client_discovery_indication(discovery_t *, DISCOVERY_MODE, void *);
void irlan_client_wakeup(struct irlan_cb *self, __u32 saddr, __u32 daddr);
void irlan_client_open_ctrl_tsap( struct irlan_cb *self);
diff --git a/include/net/irda/irlmp.h b/include/net/irda/irlmp.h
index 248c1b881adb..fa87b52db321 100644
--- a/include/net/irda/irlmp.h
+++ b/include/net/irda/irlmp.h
@@ -72,7 +72,7 @@ typedef enum {
S_END,
} SERVICE;
-typedef void (*DISCOVERY_CALLBACK1) (discovery_t *, void *);
+typedef void (*DISCOVERY_CALLBACK1) (discovery_t *, DISCOVERY_MODE, void *);
typedef void (*DISCOVERY_CALLBACK2) (hashbin_t *, void *);
typedef struct {
@@ -214,7 +214,7 @@ void irlmp_disconnect_indication(struct lsap_cb *self, LM_REASON reason,
struct sk_buff *userdata);
int irlmp_disconnect_request(struct lsap_cb *, struct sk_buff *userdata);
-void irlmp_discovery_confirm(hashbin_t *discovery_log);
+void irlmp_discovery_confirm(hashbin_t *discovery_log, DISCOVERY_MODE);
void irlmp_discovery_request(int nslots);
struct irda_device_info *irlmp_get_discoveries(int *pn, __u16 mask, int nslots);
void irlmp_do_expiry(void);