Anforderungen  |   Konzepte  |   Entwurf  |   Entwicklung  |   Qualitätssicherung  |   Lebenszyklus  |   Steuerung
 
 
 
 


Quelle  user_session.h   Sprache: C

 
/* SPDX-License-Identifier: GPL-2.0-or-later */
/*
 *   Copyright (C) 2018 Samsung Electronics Co., Ltd.
 */


#ifndef __USER_SESSION_MANAGEMENT_H__
#define __USER_SESSION_MANAGEMENT_H__

#include <linux/hashtable.h>
#include <linux/xarray.h>

#include "../smb_common.h"
#include "../ntlmssp.h"

#define CIFDS_SESSION_FLAG_SMB2  BIT(1)

#define PREAUTH_HASHVALUE_SIZE  64

struct ksmbd_file_table;

struct channel {
 __u8   smb3signingkey[SMB3_SIGN_KEY_SIZE];
 struct ksmbd_conn *conn;
};

struct preauth_session {
 __u8   Preauth_HashValue[PREAUTH_HASHVALUE_SIZE];
 u64   id;
 struct list_head preauth_entry;
};

struct ksmbd_session {
 u64    id;

 __u16    dialect;
 char    ClientGUID[SMB2_CLIENT_GUID_SIZE];

 struct ksmbd_user  *user;
 unsigned int   sequence_number;
 unsigned int   flags;

 bool    sign;
 bool    enc;
 bool    is_anonymous;

 int    state;
 __u8    *Preauth_HashValue;

 char    sess_key[CIFS_KEY_SIZE];

 struct hlist_node  hlist;
 struct xarray   ksmbd_chann_list;
 struct xarray   tree_conns;
 struct ida   tree_conn_ida;
 struct xarray   rpc_handle_list;

 __u8    smb3encryptionkey[SMB3_ENC_DEC_KEY_SIZE];
 __u8    smb3decryptionkey[SMB3_ENC_DEC_KEY_SIZE];
 __u8    smb3signingkey[SMB3_SIGN_KEY_SIZE];

 struct ksmbd_file_table  file_table;
 unsigned long   last_active;
 rwlock_t   tree_conns_lock;

 atomic_t   refcnt;
 struct rw_semaphore  rpc_lock;
};

static inline int test_session_flag(struct ksmbd_session *sess, int bit)
{
 return sess->flags & bit;
}

static inline void set_session_flag(struct ksmbd_session *sess, int bit)
{
 sess->flags |= bit;
}

static inline void clear_session_flag(struct ksmbd_session *sess, int bit)
{
 sess->flags &= ~bit;
}

struct ksmbd_session *ksmbd_smb2_session_create(void);

void ksmbd_session_destroy(struct ksmbd_session *sess);

struct ksmbd_session *ksmbd_session_lookup_slowpath(unsigned long long id);
struct ksmbd_session *ksmbd_session_lookup(struct ksmbd_conn *conn,
        unsigned long long id);
bool is_ksmbd_session_in_connection(struct ksmbd_conn *conn,
         unsigned long long id);
int ksmbd_session_register(struct ksmbd_conn *conn,
      struct ksmbd_session *sess);
void ksmbd_sessions_deregister(struct ksmbd_conn *conn);
struct ksmbd_session *__session_lookup(unsigned long long id);
struct ksmbd_session *ksmbd_session_lookup_all(struct ksmbd_conn *conn,
            unsigned long long id);
void destroy_previous_session(struct ksmbd_conn *conn,
         struct ksmbd_user *user, u64 id);
struct preauth_session *ksmbd_preauth_session_alloc(struct ksmbd_conn *conn,
          u64 sess_id);
struct preauth_session *ksmbd_preauth_session_lookup(struct ksmbd_conn *conn,
           unsigned long long id);

int ksmbd_acquire_tree_conn_id(struct ksmbd_session *sess);
void ksmbd_release_tree_conn_id(struct ksmbd_session *sess, int id);

int ksmbd_session_rpc_open(struct ksmbd_session *sess, char *rpc_name);
void ksmbd_session_rpc_close(struct ksmbd_session *sess, int id);
int ksmbd_session_rpc_method(struct ksmbd_session *sess, int id);
void ksmbd_user_session_get(struct ksmbd_session *sess);
void ksmbd_user_session_put(struct ksmbd_session *sess);
#endif /* __USER_SESSION_MANAGEMENT_H__ */

Messung V0.5
C=89 H=97 G=93

¤ Dauer der Verarbeitung: 0.3 Sekunden  ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

Beweissystem der NASA

Beweissystem Isabelle

NIST Cobol Testsuite

Cephes Mathematical Library

Wiener Entwicklungsmethode

Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.

Bemerkung:

Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.






                                                                                                                                                                                                                                                                                                                                                                                                     


Neuigkeiten

     Aktuelles
     Motto des Tages

Software

     Produkte
     Quellcodebibliothek

Aktivitäten

     Artikel über Sicherheit
     Anleitung zur Aktivierung von SSL

Muße

     Gedichte
     Musik
     Bilder

Jenseits des Üblichen ....
    

Besucherstatistik

Besucherstatistik

Monitoring

Montastic status badge