diff options
| author | Jean Tourrilhes <jt@hpl.hp.com> | 2002-04-03 19:01:47 -0500 |
|---|---|---|
| committer | Linus Torvalds <torvalds@penguin.transmeta.com> | 2002-04-03 19:01:47 -0500 |
| commit | f289ef5a2e28b48d3677ea851d3ba4c712315d62 (patch) | |
| tree | 81d23b582d05618d2aaf873fbb76d5a88154fd8f /include | |
| parent | 0a0828244fb7a4c2b2c5f15adc5ea134bd171da4 (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.h | 8 | ||||
| -rw-r--r-- | include/net/irda/irlan_client.h | 2 | ||||
| -rw-r--r-- | include/net/irda/irlmp.h | 4 |
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); |
